// store.js
import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'


Vue.use(Vuex)

// 假定我们有一个可以返回 Promise 的
// 通用 API（请忽略此 API 具体实现细节）
// import { fetchItem } from './api'

export function createStore () {
  return new Vuex.Store({
    state: {
      items: {},
      posts: [],
    },
    actions: {
      // fetchItem ({ commit }, id) {
      //   // `store.dispatch()` 会返回 Promise，
      //   // 以便我们能够知道数据在何时更新
      //   return fetchItem(id).then(item => {
      //     commit('setItem', { id, item })
      //   })
      // }
      async getPosts ({ commit }) {
      //   const { data } = await axios.get('https://cnodejs.org/api/v1/topics')
      //   commit('setPosts', data.data)
      },
    },
    mutations: {
      setItem (state, { id, item }) {
        Vue.set(state.items, id, item)
      },
      setPosts (state, posts) {
        state.posts = posts
      },
    }
  })
}